package com.gitee.wsl.unit.angle

import com.gitee.wsl.unit.angle.ext.sanitize360

/**
 * 方位
 */
enum class AngleDirection(val direction:String){
    SAME("相同"), // 坐标相同
    TOP("北"), // 上 ( 北 )
    BOTTOM("南"), // 下 ( 南 )
    LEFT("西"), // 左 ( 西 )
    RIGHT("东"), // 右 ( 东 )
    LEFT_TOP("西北"), // 左上 ( 西北 )
    LEFT_BOTTOM("西南"), // 左下 ( 西南 )
    RIGHT_TOP("东北"), // 右上 ( 东北 )
    RIGHT_BOTTOM("东南"); // 右下 ( 东南 )
}

val AngleUnit.angleDirection: AngleDirection
    get() {
        val angle = sanitize360().degrees
        return when{
            (angle <= 10) || (angle > 350) -> AngleDirection.RIGHT
            angle <= 80  -> AngleDirection.RIGHT_TOP
            angle <= 100 -> AngleDirection.TOP
            angle <= 170 -> AngleDirection.LEFT_TOP
            angle <= 190 -> AngleDirection.LEFT
            angle <= 260 -> AngleDirection.LEFT_BOTTOM
            angle <= 280 -> AngleDirection.BOTTOM
            angle <= 350 -> AngleDirection.RIGHT_BOTTOM
            else ->AngleDirection.SAME
        }
    }